package reply

// PongReply
// @Description: pong reply
type PongReply struct {
}

var pongBytes = []byte("+PONG\r\n")

var thePongReply = new(PongReply)

func NewPongReply() *PongReply {
	return thePongReply
}

func (p *PongReply) ToBytes() []byte {
	return pongBytes
}

// OkReply
// @Description: ok reply
type OkReply struct {
}

var okBytes = []byte("+OK\r\n")

var theOkReply = new(OkReply)

func (o *OkReply) ToBytes() []byte {
	return okBytes
}

func NewOkReply() *OkReply {
	return theOkReply
}

// NullBulkReply
// @Description: 空字符串回复
type NullBulkReply struct {
}

var nullBulkReplyBytes = []byte("$-1\r\n")

var theNullBulkReply = new(NullBulkReply)

func (n *NullBulkReply) ToBytes() []byte {
	return nullBulkReplyBytes
}

func NewNullBulkReply() *NullBulkReply {
	return theNullBulkReply
}

// EmptyMultiBulkReply
// @Description: 空数组回复
type EmptyMultiBulkReply struct {
}

var emptyMultiBulkBytes = []byte("*0\r\n")
var theEmpthMultiBulkReply = new(EmptyMultiBulkReply)

func (e *EmptyMultiBulkReply) ToBytes() []byte {
	return emptyMultiBulkBytes

}

func NewEmptyMultiBulkReply() *EmptyMultiBulkReply {
	return theEmpthMultiBulkReply
}

// NoReply
// @Description: 无回复
type NoReply struct {
}

var noReplyBytes = []byte("")

var theNoReplyBytes = new(NoReply)

func (n *NoReply) ToBytes() []byte {
	return noReplyBytes
}

func NewNoReplyBytes() *NoReply {
	return theNoReplyBytes
}
